import type { RouteRecordRaw } from 'vue-router'

const routes: RouteRecordRaw[] = [
  {
    path: '/',
    name: 'Home',
    component: () => import('@/views/Home.vue'),
    meta: {
      title: 'MDN API 演示首页'
    }
  },
  {
    path: '/screen-capture',
    name: 'ScreenCapture',
    component: () => import('@/views/demos/ScreenCapture.vue'),
    meta: {
      title: '屏幕捕捉 API'
    }
  },
  {
    path: '/hid-api',
    name: 'HIDApi',
    component: () => import('@/views/demos/HIDApi.vue'),
    meta: {
      title: 'HID 协议 API'
    }
  },
  {
    path: '/geolocation',
    name: 'Geolocation',
    component: () => import('@/views/demos/Geolocation.vue'),
    meta: {
      title: '地理位置 API'
    }
  },
  {
    path: '/notification',
    name: 'Notification',
    component: () => import('@/views/demos/Notification.vue'),
    meta: {
      title: '通知 API'
    }
  },
  {
    path: '/web-audio',
    name: 'WebAudio',
    component: () => import('@/views/demos/WebAudio.vue'),
    meta: {
      title: 'Web Audio API'
    }
  },
  {
    path: '/canvas',
    name: 'Canvas',
    component: () => import('@/views/demos/Canvas.vue'),
    meta: {
      title: 'Canvas API'
    }
  },
  {
    path: '/websocket',
    name: 'WebSocket',
    component: () => import('@/views/demos/WebSocket.vue'),
    meta: {
      title: 'WebSocket API'
    }
  },
  {
    path: '/file-api',
    name: 'FileApi',
    component: () => import('@/views/demos/FileApi.vue'),
    meta: {
      title: 'File API'
    }
  },
  {
    path: '/web-workers',
    name: 'WebWorkers',
    component: () => import('@/views/demos/WebWorkers.vue'),
    meta: {
      title: 'Web Workers API'
    }
  },
  {
    path: '/audio-output',
    name: 'AudioOutput',
    component: () => import('@/views/demos/AudioOutput.vue'),
    meta: {
      title: '音频输出设备 API'
    }
  },
  {
    path: '/badging-api',
    name: 'BadgingAPI',
    component: () => import('@/views/demos/BadgingAPI.vue'),
    meta: {
      title: 'Badging API'
    }
  },
  {
    path: '/barcode-detection',
    name: 'BarcodeDetection',
    component: () => import('@/views/demos/BarcodeDetection.vue'),
    meta: {
      title: 'Barcode Detection API'
    }
  },
  {
    path: '/beacon-api',
    name: 'BeaconAPI',
    component: () => import('@/views/demos/BeaconAPI.vue'),
    meta: {
      title: 'Beacon API'
    }
  },
  {
    path: '/file-system-api',
    name: 'FileSystemAPI',
    component: () => import('@/views/demos/FileSystemAPI.vue'),
    meta: {
      title: 'File System Access API'
    }
  },
  {
    path: '/fullscreen-api',
    name: 'FullscreenAPI',
    component: () => import('@/views/demos/FullscreenAPI.vue'),
    meta: {
      title: 'Fullscreen API'
    }
  },
  {
    path: '/gamepad-api',
    name: 'GamepadAPI',
    component: () => import('@/views/demos/GamepadAPI.vue'),
    meta: {
      title: 'Gamepad API'
    }
  },
  {
    path: '/drag-drop-api',
    name: 'DragDropAPI',
    component: () => import('@/views/demos/DragDropAPI.vue'),
    meta: {
      title: 'HTML 拖放 API'
    }
  },
  {
    path: '/image-capture-api',
    name: 'ImageCaptureAPI',
    component: () => import('@/views/demos/ImageCaptureAPI.vue'),
    meta: {
      title: 'MediaStream Image Capture API'
    }
  },
  {
    path: '/indexeddb-api',
    name: 'IndexedDBAPI',
    component: () => import('@/views/demos/IndexedDBAPI.vue'),
    meta: {
      title: 'IndexedDB API'
    }
  },
  {
    path: '/insertable-streams-api',
    name: 'InsertableStreamsAPI',
    component: () => import('@/views/demos/InsertableStreamsAPI.vue'),
    meta: {
      title: 'Insertable Streams API'
    }
  },
  {
    path: '/media-capabilities-api',
    name: 'MediaCapabilitiesAPI',
    component: () => import('@/views/demos/MediaCapabilitiesAPI.vue'),
    meta: {
      title: 'Media Capabilities API'
    }
  },
  {
    path: '/media-source-api',
    name: 'MediaSourceAPI',
    component: () => import('@/views/demos/MediaSourceAPI.vue'),
    meta: {
      title: 'Media Source Extensions API'
    }
  },
  {
    path: '/payment-handler-api',
    name: 'PaymentHandlerAPI',
    component: () => import('@/views/demos/PaymentHandlerAPI.vue'),
    meta: {
      title: 'Payment Handler API'
    }
  },
  {
    path: '/performance-api',
    name: 'PerformanceAPI',
    component: () => import('@/views/demos/PerformanceAPI.vue'),
    meta: {
      title: 'Performance API'
    }
  },
  {
    path: '/document-pip-api',
    name: 'DocumentPiPAPI',
    component: () => import('@/views/demos/DocumentPiPAPI.vue'),
    meta: {
      title: 'Document Picture-in-Picture API'
    }
  },
  {
    path: '/presentation-api',
    name: 'PresentationAPI',
    component: () => import('@/views/demos/PresentationAPI.vue'),
    meta: {
      title: 'Presentation API'
    }
  },
  {
    path: '/resize-observer-api',
    name: 'ResizeObserverAPI',
    component: () => import('@/views/demos/ResizeObserverAPI.vue'),
    meta: {
      title: 'Resize Observer API'
    }
  },
  {
    path: '/wake-lock-api',
    name: 'WakeLockAPI',
    component: () => import('@/views/demos/WakeLockAPI.vue'),
    meta: {
      title: 'Screen Wake Lock API'
    }
  },
  {
    path: '/selection-api',
    name: 'SelectionAPI',
    component: () => import('@/views/demos/SelectionAPI.vue'),
    meta: {
      title: 'Selection API'
    }
  },
  {
    path: '/view-transitions-api',
    name: 'ViewTransitionsAPI',
    component: () => import('@/views/demos/ViewTransitionsAPI.vue'),
    meta: {
      title: 'View Transitions API'
    }
  },
  {
    path: '/web-animations-api',
    name: 'WebAnimationsAPI',
    component: () => import('@/views/demos/WebAnimationsAPI.vue'),
    meta: {
      title: 'Web Animations API'
    }
  },
  {
    path: '/web-midi-api',
    name: 'WebMIDIAPI',
    component: () => import('@/views/demos/WebMIDIAPI.vue'),
    meta: {
      title: 'Web MIDI API'
    }
  },
  {
    path: '/web-speech-api',
    name: 'WebSpeechAPI',
    component: () => import('@/views/demos/WebSpeechAPI.vue'),
    meta: {
      title: 'Web Speech API'
    }
  },
  {
    path: '/webcodecs-api',
    name: 'WebCodecsAPI',
    component: () => import('@/views/demos/WebCodecsAPI.vue'),
    meta: {
      title: 'WebCodecs API'
    }
  },
  {
    path: '/webrtc-api',
    name: 'WebRTCAPI',
    component: () => import('@/views/demos/WebRTCAPI.vue'),
    meta: {
      title: 'WebRTC API'
    }
  },
  {
    path: '/webusb-api',
    name: 'WebUSBAPI',
    component: () => import('@/views/demos/WebUSBAPI.vue'),
    meta: {
      title: 'WebUSB API'
    }
  },
  {
    path: '/webvtt-api',
    name: 'WebVTTAPI',
    component: () => import('@/views/demos/WebVTTAPI.vue'),
    meta: {
      title: 'WebVTT API'
    }
  },
  {
    path: '/window-management-api',
    name: 'WindowManagementAPI',
    component: () => import('@/views/demos/WindowManagementAPI.vue'),
    meta: {
      title: 'Window Management API'
    }
  }
]

export default routes
